Function.prototype.apply2 = function(content = window, args = []) {
    // 原型链上的方法
    content.fn = this;
    // const args = [...arguments].slice(1) //运行时的参数
    const result = content.fn(...args);
    delete content.fn;
    return result;
};

let foo = {
    value: 1
};

function bar(name, age) {
    console.log(name);
    console.log(age);
    // this默认指向全局？JS语言的bug  作为对象的方法被调用时
    // bar 作为 -foo的方法被调用
    console.log(this.value);
}
bar.apply2(foo, ['张三', 18])